package com.ajax.browser;

/**
 * Represents the user agent, browser or clientlet engine.
 * @author J. H. S.
 */
public interface UserAgent {
	/**
	 * Gets the user agent name.
	 */
	public String getName();
	
	/**
	 * Gets the user agent version.
	 */
	public String getVersion();

//	/**
//	 * Gets the earliest XAMJ version this user agent
//	 * implements as a subset. (Supersets and other
//	 * non-subsets of XAMJ versions are not allowed.)
//	 */
//	public String getXamjVersion();
	
	/**
	 * Gets the internal Java runtime version the
	 * user agent runs on. 
	 */
	public String getJavaVersion();
	
	/**
	 * Gets the user agent name followed by the version.
	 */
	public String getNameAndVersion();

	/**
	 * Optional URL with information about the user agent.
	 */
	public String getInfoUrl();
	
	/**
	 * Gets the value the User-Agent header should be set to.
	 */
	public String getUserAgentString();
	
//(unavalilable for now)
//	/**
//	 * Gets an ID that is nearly guaranteed to be globally unique
//	 * for a browser session and a protocol-host pair. The session ID
//	 * should be practically impossible to guess, even if the algorithm
//	 * to produce it is well known. The session ID does not persist 
//	 * if the browser exits.
//	 */
//	public String getSessionID(java.net.URL url);
}
